ee7cb1489f2775ae0b38b7ac8798764e668e5175,src/frontend/org/voltdb/iv2/Site.java,Site,run,#,494

Before Change


                    // are responsible for logging any rejoin work they might have.
                    SiteTasker task = m_scheduler.poll();
                    if (task != null) {
                        task.runForRejoin(getSiteProcedureConnection(), m_rejoinTaskLog);
                    }
                    replayFromTaskLog();
                }

After Change


                    // are responsible for logging any rejoin work they might have.
                    SiteTasker task = null;
                    boolean didWork = false;
                    while ((task = m_scheduler.poll()) != null) {
                        didWork = true;
                        //If the task log is empty, free to execute the task
                        //If the mrm says we can do a restricted task, go do it
                        //Otherwise spin doing unrestricted tasks until we can bail out
                        //and do the restricted task that was polled
                        if (!m_rejoinTaskLog.isEmpty() && !mrm.canDoRestricted()) {
                            while (!mrm.canDoRestricted()) {
                                replayFromTaskLog(mrm);
                            }
                        }
                        mrm.didRestricted();
                        task.runForRejoin(getSiteProcedureConnection(), m_rejoinTaskLog);
                    }
                    //If there are no tasks, do task log work
                    didWork |= replayFromTaskLog(mrm);